package com.neusoft.neuiotms.dcom.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.neusoft.bizcore.auth.common.bean.UserBean;
import com.neusoft.bizcore.web.support.Searchable;
import com.neusoft.neuiotms.dcom.dto.InstitutionsDTO;
import com.neusoft.neuiotms.dcom.dto.MonthWeeklyDTO;

public interface MonthWeeklyService {

    List<MonthWeeklyDTO> index(Searchable searchable, UserBean userBean);

    Page<MonthWeeklyDTO> search(Pageable pageable, Searchable searchable, UserBean userBean);

    MonthWeeklyDTO create(MonthWeeklyDTO dto);

    MonthWeeklyDTO update(Long id, MonthWeeklyDTO dto);

    MonthWeeklyDTO details(Long id);

    void delete(Long id);

    XWPFDocument export(Long id);

    List<InstitutionsDTO> unstartdInstitutions();

    Map<String, Long> reportStats();

    Page<Map<String, Object>> report(Pageable pageable, String username, Date start, Date end);

    Workbook exportReport(String username, Date start, Date end);

    /**
     * 检查月报提醒
     */
    void checkReportNotice();
}
